그래프 이론 이중 그래프의 인접 행렬은 Biadjacency Matrix를 사용하여 메모리를 절약합니다. 그래프 $ G = (V, E) $는 $ | V |\times | V | $ 행렬로 나타낼 수 있습니다. 이 행렬을 ${\bf A}$로 했을 때, ${\bf A}_{ij}$를 정점 $i$와 $j$를 연결하는 에지의 가중치로 한 행렬을 인접 행렬 (Adjacency Matrix) 라고 부릅니다. 그런데, 같은 집합내의 정점을 접속하는 엣지가 존재하지 않도록 그래프의 정점 집합을 2 집합으로 분할... 그래프 이론수학행렬 NEM 거래 내역 네트워크에서 거래소 주소 추출 반년 정도 전에 이라는 NEM의 거래 내역에서 주소의 연결을 시각화하는 앱을 만들었습니다. 네트워크 분석 기법을 사용하여 이 앱에서 출력되는 거래 내역에서 거래소 주소를 찾아보세요. (결론에서 말하면 찾을 수 있습니다) 의 텍스트 박스에 적당한 주소를 넣어, 연결의 차수를 4, 1 노드에 대해서 취득하는 트랜잭션(transaction)를 10으로 해 Search 합니다. 최대 10^4개의 주... 그래프 이론networkx파이썬NEM 그래프의 일반화 「하이퍼그래프」란? 이번에 일반 그래프와 하이퍼그래프를 명시적으로 부르기 위해 전자를 일반 그래프, 후자를 하이퍼그래프라고 부르기로 하겠습니다. 하이퍼그래프란 그래프 이론에서 다루어지는 일반 그래프를 일반화(확장)한 것입니다. 일반 그래프에서 가장자리는 두 개의 정점을 연결하지만 하이퍼그래프에서는 가장자리에 임의의 정점을 포함(연결)할 수 있습니다. 하이퍼그래프 $H$는 정점 집합 $X$와 하이퍼 엣지(Hype... 그래프 이론수학하이퍼그래프Hypergraph [백준] #1260 - DFS와 BFS (파이썬, Python) 알고리즘깊이 우선 탐색너비 우선 탐색그래프 이론그래프 탐색백준그래프 이론 백준 문제 풀이 - 단지번호붙이기 2667번 <그림 1>과 같이 정사각형 모양의 지도가 있다. 1은 집이 있는 곳을, 0은 집이 없는 곳을 나타낸다. 철수는 이 지도를 가지고 연결된 집의 모임인 단지를 정의하고, 단지에 번호를 붙이려 한다. 여기서 연결되었다는 것은 어떤 집이 좌우, 혹은 아래위로 다른 집이 있는 경우를 말한다. 대각선상에 집이 있는 경우는 연결된 것이 아니다. <그림 2>는 <그림 1>을 단지별로 번호를 붙인 것이다.... 그래프 탐색너비 우선 탐색깊이 우선 탐색그래프 이론그래프 이론 DFS와 BFS - 백준(1260, 그래프 탐색) 🎯 DFS와 BFS 🧐 알고리즘[접근방법] 장점의 개수로 2차원 배열 선언, 방문 여부를 판단한 1차원 배열 선언 간선을 입력 받으면서 2차원 배열에 각각 넣어준다.ex) 1 2 입력 시 => 1 ➡ 2 , 2 ➡ 1 BFS 함수 구현 Integer 타입의 Queue 선언 시작 index Queue에 추가 및 시작 점 방문 처리 2차원 배열 탐색하면서 연결 된 점 Queue 추가 및 방문 처... 그래프 탐색그래프 이론BFS코딩테스트DFS코테백준BFS 봄버맨 - 백준(16918, 그래프 탐색) 🎯 봄버맨 🧐 알고리즘[접근방법] 장점의 개수로 2차원 배열 선언 N초 동안 해당 로직을 따르도록 구현 가장 처음에 봄버맨은 일부 칸에 폭탄을 설치해 놓는다. 모든 폭탄이 설치된 시간은 같다. 다음 1초 동안 봄버맨은 아무것도 하지 않는다. 다음 1초 동안 폭탄이 설치되어 있지 않은 모든 칸에 폭탄을 설치한다. 즉, 모든 칸은 폭탄을 가지고 있게 된다. 폭탄은 모두 동시에 설치했다고 가정한다... 그래프 탐색그래프 이론BFS코딩테스트코테백준BFS 토마토 - 백준(7576, 그래프 탐색) 🎯 단지번호붙이기 🧐 알고리즘[접근방법] 토마토 정보가 담긴 배열 map, 일수를 저장하기 위한 배열 dist 선언 토마토가 있는 배열을 Queue에 저장 후 BFS를 통해서 일수 진행 map에 모든 칸에 토마토가 있으면 최대 일수 출력, 아니면 -1 출력 👨💻 소스 🏅 결과 📖 관련 지식... 그래프 탐색그래프 이론BFS코딩테스트코테백준BFS 단지번호붙이기 - 백준(2667, 그래프 탐색) 🎯 단지번호붙이기 🧐 알고리즘[접근방법] 장점의 개수로 2차원 배열 선언 배열 탐색하면서 단지 구분 하여 탐색 탐색하면서 단지안에 집 개수 저장 집 개수 정렬 후 출력 👨💻 소스 BFS 소스 DFS 소스 🏅 결과 BFS 결과 DFS 결과 📖 관련 지식... 그래프 탐색그래프 이론BFS코딩테스트DFS코테백준BFS 백준 문제 풀이 - 트리의 지름 1967번 트리에서는 어떤 두 노드를 선택해도 둘 사이에 경로가 항상 하나만 존재하게 된다. 트리에서 어떤 두 노드를 선택해서 양쪽으로 쫙 당길 때, 가장 길게 늘어나는 경우가 있을 것이다. 이럴 때 트리의 모든 노드들은 이 두 노드를 지름의 끝 점으로 하는 원 안에 들어가게 된다. 이런 두 노드 사이의 경로의 길이를 트리의 지름이라고 한다. 정확히 정의하자면 트리에 존재하는 모든 경로들 중에서 가장 ... 그래프 탐색깊이 우선 탐색트리그래프 이론그래프 이론 BOJ12852 1로 만들기 2 문제 실버I | 백준 12852 | Python3 파이썬 풀이 알고리즘 전형적인 BFS 문제이다. BFS는 자식 노드를 먼저 방문하므로, 같은 레벨의 자식 노드들의 탐색 깊이가 같다. 그러므로 최단 경로를 찾을 때는 BFS가 DFS보다 유리하다. BFS 3으로 나누어 떨어지면 그 값을 가진 자식 방문 2로 나누어 떨어지면 그 값을 가진 자식 방문 1을 뺀 자식 방문 자식 노드가 1 값을 가지... BFS그래프 이론DP그래프 탐색BFS 우주신과의 교감_1774번 황선자씨는 우주신과 교감을 할수 있는 채널러 이다. 하지만 우주신은 하나만 있는 것이 아니기때문에 황선자 씨는 매번 여럿의 우주신과 교감하느라 힘이 든다. 하지만 위대한 우주신들은 바로 황선자씨와 연결될 필요가 없다. 이미 황선자씨와 혹은 이미 우주신끼리 교감할 수 있는 우주신들이 있기 때문에 새로운 우주신들은 그 우주신들을 거쳐서 황선자 씨와 교감을 할 수 있다. 우주신들과의 교감은 우주신... Union Find그래프 이론최소 스패닝 트리Union Find BOJ16928 뱀과 사다리 게임 문제 실버I | 백준 16928 | Python3 파이썬 풀이 알고리즘 사다리와 뱀은 딕셔너리에 저장해놓는다. 나머지는 BFS를 이용해 모든 칸을 탐색하며 끝 칸에 도착하게 되는 노드의 순서를 출력한다. 코드 결과... BFS그래프 이론그래프 탐색BFS [C++] 백준 13565번: 침투 문제 링크 문제 요약 섬유 물질의 바깥쪽에서 흘려 준 전류가 안쪽까지 침투될 수 있는지 아닌지 판단하는 프로그램을 작성해야 한다. 섬유 물질은 격자로 이루어져 있는데, 격자의 색이 검은색이면 전류를 차단하는 물질이고, 흰색이면 전류가 통하는 물질이다. 접근 방법 간단한 그래프 탐색 문제였습니다. 위쪽 부분을 하나의 정점으로 보고, 아래쪽 부분을 하나의 정점으로 생각할 수 있습니다. 이때, 위... 너비 우선 탐색그래프 탐색그래프 이론백준그래프 이론 코딩테스트 가장 먼 노드 문제풀이 프로그래머스 가장 먼 노드(level 3) 문제풀이 전형적인 다익스트라 문제로 다익스트라 알고리즘 자체가 어려워서 레벨 3인 것 같다. 우선순위 큐를 활용해서 다익스트라 코드를 쓰는 방법에 대해 공부가 됐고, 최단 거리 노드들 연결시키면서 퍼져나가는 방법에 대해 확실히 이해하는 계기가 됐다... 그래프 이론프로그래머스그래프 이론 [백준] 1012 유기농 배추 Python 시간 제한: 1 초 메모리 제한: 512 MB 알고리즘 분류: 그래프 이론, 그래프 탐색, 너비 우선 탐색, 깊이 우선 탐색 차세대 영농인 한나는 강원도 고랭지에서 유기농 배추를 재배하기로 하였다. 농약을 쓰지 않고 배추를 재배하려면 배추를 해충으로부터 보호하는 것이 중요하기 때문에, 한나는 해충 방지에 효과적인 배추흰지렁이를 구입하기로 결심한다. 이 지렁이는 배추근처에 서식하며 해충을 잡아... 그래프 이론Silver 2그래프 탐색BFS백준DFS너비 우선 탐색algorithmpython깊이 우선 탐색BFS [백준] 2178 미로 탐색 티어 : Silver 1 시간 제한 : 1 초 메모리 제한 : 192 MB 알고리즘 분류 : 그래프 이론, 그래프 탐색, 너비 우선 탐색 문제 N×M크기의 배열로 표현되는 미로가 있다. 미로에서 1은 이동할 수 있는 칸을 나타내고, 0은 이동할 수 없는 칸을 나타낸다. 이러한 미로가 주어졌을 때, (1, 1)에서 출발하여 (N, M)의 위치로 이동할 때 지나야 하는 최소의 칸 수를 구하는 프... 그래프 이론Silver 1그래프 탐색BFS백준너비 우선 탐색algorithmpythonBFS [Python] 백준 1068_ 트리 이 문제는 깊이 우선 탐색(dfs)을 이용하여 해결하였다. (예제) 1. 트리 그래프 만들기 먼저 루트 노드는 root변수에 따로 저장해두고, node리스트의 인덱스 값의 자식 노드 번호를 저장해두었다. root = 0 이다. 0의 자식노드는 1,2 1의 자식노드는 존재하지 않으므로 리프노드라고 할 수 있다. 2. 리프 노드의 개수 구하기 리프노드의 개수를 cnt변수에 저장한다. 3. 제거해... 그래프 이론DFS코테공부백준트리알고리즘그래프 탐색DFS
이중 그래프의 인접 행렬은 Biadjacency Matrix를 사용하여 메모리를 절약합니다. 그래프 $ G = (V, E) $는 $ | V |\times | V | $ 행렬로 나타낼 수 있습니다. 이 행렬을 ${\bf A}$로 했을 때, ${\bf A}_{ij}$를 정점 $i$와 $j$를 연결하는 에지의 가중치로 한 행렬을 인접 행렬 (Adjacency Matrix) 라고 부릅니다. 그런데, 같은 집합내의 정점을 접속하는 엣지가 존재하지 않도록 그래프의 정점 집합을 2 집합으로 분할... 그래프 이론수학행렬 NEM 거래 내역 네트워크에서 거래소 주소 추출 반년 정도 전에 이라는 NEM의 거래 내역에서 주소의 연결을 시각화하는 앱을 만들었습니다. 네트워크 분석 기법을 사용하여 이 앱에서 출력되는 거래 내역에서 거래소 주소를 찾아보세요. (결론에서 말하면 찾을 수 있습니다) 의 텍스트 박스에 적당한 주소를 넣어, 연결의 차수를 4, 1 노드에 대해서 취득하는 트랜잭션(transaction)를 10으로 해 Search 합니다. 최대 10^4개의 주... 그래프 이론networkx파이썬NEM 그래프의 일반화 「하이퍼그래프」란? 이번에 일반 그래프와 하이퍼그래프를 명시적으로 부르기 위해 전자를 일반 그래프, 후자를 하이퍼그래프라고 부르기로 하겠습니다. 하이퍼그래프란 그래프 이론에서 다루어지는 일반 그래프를 일반화(확장)한 것입니다. 일반 그래프에서 가장자리는 두 개의 정점을 연결하지만 하이퍼그래프에서는 가장자리에 임의의 정점을 포함(연결)할 수 있습니다. 하이퍼그래프 $H$는 정점 집합 $X$와 하이퍼 엣지(Hype... 그래프 이론수학하이퍼그래프Hypergraph [백준] #1260 - DFS와 BFS (파이썬, Python) 알고리즘깊이 우선 탐색너비 우선 탐색그래프 이론그래프 탐색백준그래프 이론 백준 문제 풀이 - 단지번호붙이기 2667번 <그림 1>과 같이 정사각형 모양의 지도가 있다. 1은 집이 있는 곳을, 0은 집이 없는 곳을 나타낸다. 철수는 이 지도를 가지고 연결된 집의 모임인 단지를 정의하고, 단지에 번호를 붙이려 한다. 여기서 연결되었다는 것은 어떤 집이 좌우, 혹은 아래위로 다른 집이 있는 경우를 말한다. 대각선상에 집이 있는 경우는 연결된 것이 아니다. <그림 2>는 <그림 1>을 단지별로 번호를 붙인 것이다.... 그래프 탐색너비 우선 탐색깊이 우선 탐색그래프 이론그래프 이론 DFS와 BFS - 백준(1260, 그래프 탐색) 🎯 DFS와 BFS 🧐 알고리즘[접근방법] 장점의 개수로 2차원 배열 선언, 방문 여부를 판단한 1차원 배열 선언 간선을 입력 받으면서 2차원 배열에 각각 넣어준다.ex) 1 2 입력 시 => 1 ➡ 2 , 2 ➡ 1 BFS 함수 구현 Integer 타입의 Queue 선언 시작 index Queue에 추가 및 시작 점 방문 처리 2차원 배열 탐색하면서 연결 된 점 Queue 추가 및 방문 처... 그래프 탐색그래프 이론BFS코딩테스트DFS코테백준BFS 봄버맨 - 백준(16918, 그래프 탐색) 🎯 봄버맨 🧐 알고리즘[접근방법] 장점의 개수로 2차원 배열 선언 N초 동안 해당 로직을 따르도록 구현 가장 처음에 봄버맨은 일부 칸에 폭탄을 설치해 놓는다. 모든 폭탄이 설치된 시간은 같다. 다음 1초 동안 봄버맨은 아무것도 하지 않는다. 다음 1초 동안 폭탄이 설치되어 있지 않은 모든 칸에 폭탄을 설치한다. 즉, 모든 칸은 폭탄을 가지고 있게 된다. 폭탄은 모두 동시에 설치했다고 가정한다... 그래프 탐색그래프 이론BFS코딩테스트코테백준BFS 토마토 - 백준(7576, 그래프 탐색) 🎯 단지번호붙이기 🧐 알고리즘[접근방법] 토마토 정보가 담긴 배열 map, 일수를 저장하기 위한 배열 dist 선언 토마토가 있는 배열을 Queue에 저장 후 BFS를 통해서 일수 진행 map에 모든 칸에 토마토가 있으면 최대 일수 출력, 아니면 -1 출력 👨💻 소스 🏅 결과 📖 관련 지식... 그래프 탐색그래프 이론BFS코딩테스트코테백준BFS 단지번호붙이기 - 백준(2667, 그래프 탐색) 🎯 단지번호붙이기 🧐 알고리즘[접근방법] 장점의 개수로 2차원 배열 선언 배열 탐색하면서 단지 구분 하여 탐색 탐색하면서 단지안에 집 개수 저장 집 개수 정렬 후 출력 👨💻 소스 BFS 소스 DFS 소스 🏅 결과 BFS 결과 DFS 결과 📖 관련 지식... 그래프 탐색그래프 이론BFS코딩테스트DFS코테백준BFS 백준 문제 풀이 - 트리의 지름 1967번 트리에서는 어떤 두 노드를 선택해도 둘 사이에 경로가 항상 하나만 존재하게 된다. 트리에서 어떤 두 노드를 선택해서 양쪽으로 쫙 당길 때, 가장 길게 늘어나는 경우가 있을 것이다. 이럴 때 트리의 모든 노드들은 이 두 노드를 지름의 끝 점으로 하는 원 안에 들어가게 된다. 이런 두 노드 사이의 경로의 길이를 트리의 지름이라고 한다. 정확히 정의하자면 트리에 존재하는 모든 경로들 중에서 가장 ... 그래프 탐색깊이 우선 탐색트리그래프 이론그래프 이론 BOJ12852 1로 만들기 2 문제 실버I | 백준 12852 | Python3 파이썬 풀이 알고리즘 전형적인 BFS 문제이다. BFS는 자식 노드를 먼저 방문하므로, 같은 레벨의 자식 노드들의 탐색 깊이가 같다. 그러므로 최단 경로를 찾을 때는 BFS가 DFS보다 유리하다. BFS 3으로 나누어 떨어지면 그 값을 가진 자식 방문 2로 나누어 떨어지면 그 값을 가진 자식 방문 1을 뺀 자식 방문 자식 노드가 1 값을 가지... BFS그래프 이론DP그래프 탐색BFS 우주신과의 교감_1774번 황선자씨는 우주신과 교감을 할수 있는 채널러 이다. 하지만 우주신은 하나만 있는 것이 아니기때문에 황선자 씨는 매번 여럿의 우주신과 교감하느라 힘이 든다. 하지만 위대한 우주신들은 바로 황선자씨와 연결될 필요가 없다. 이미 황선자씨와 혹은 이미 우주신끼리 교감할 수 있는 우주신들이 있기 때문에 새로운 우주신들은 그 우주신들을 거쳐서 황선자 씨와 교감을 할 수 있다. 우주신들과의 교감은 우주신... Union Find그래프 이론최소 스패닝 트리Union Find BOJ16928 뱀과 사다리 게임 문제 실버I | 백준 16928 | Python3 파이썬 풀이 알고리즘 사다리와 뱀은 딕셔너리에 저장해놓는다. 나머지는 BFS를 이용해 모든 칸을 탐색하며 끝 칸에 도착하게 되는 노드의 순서를 출력한다. 코드 결과... BFS그래프 이론그래프 탐색BFS [C++] 백준 13565번: 침투 문제 링크 문제 요약 섬유 물질의 바깥쪽에서 흘려 준 전류가 안쪽까지 침투될 수 있는지 아닌지 판단하는 프로그램을 작성해야 한다. 섬유 물질은 격자로 이루어져 있는데, 격자의 색이 검은색이면 전류를 차단하는 물질이고, 흰색이면 전류가 통하는 물질이다. 접근 방법 간단한 그래프 탐색 문제였습니다. 위쪽 부분을 하나의 정점으로 보고, 아래쪽 부분을 하나의 정점으로 생각할 수 있습니다. 이때, 위... 너비 우선 탐색그래프 탐색그래프 이론백준그래프 이론 코딩테스트 가장 먼 노드 문제풀이 프로그래머스 가장 먼 노드(level 3) 문제풀이 전형적인 다익스트라 문제로 다익스트라 알고리즘 자체가 어려워서 레벨 3인 것 같다. 우선순위 큐를 활용해서 다익스트라 코드를 쓰는 방법에 대해 공부가 됐고, 최단 거리 노드들 연결시키면서 퍼져나가는 방법에 대해 확실히 이해하는 계기가 됐다... 그래프 이론프로그래머스그래프 이론 [백준] 1012 유기농 배추 Python 시간 제한: 1 초 메모리 제한: 512 MB 알고리즘 분류: 그래프 이론, 그래프 탐색, 너비 우선 탐색, 깊이 우선 탐색 차세대 영농인 한나는 강원도 고랭지에서 유기농 배추를 재배하기로 하였다. 농약을 쓰지 않고 배추를 재배하려면 배추를 해충으로부터 보호하는 것이 중요하기 때문에, 한나는 해충 방지에 효과적인 배추흰지렁이를 구입하기로 결심한다. 이 지렁이는 배추근처에 서식하며 해충을 잡아... 그래프 이론Silver 2그래프 탐색BFS백준DFS너비 우선 탐색algorithmpython깊이 우선 탐색BFS [백준] 2178 미로 탐색 티어 : Silver 1 시간 제한 : 1 초 메모리 제한 : 192 MB 알고리즘 분류 : 그래프 이론, 그래프 탐색, 너비 우선 탐색 문제 N×M크기의 배열로 표현되는 미로가 있다. 미로에서 1은 이동할 수 있는 칸을 나타내고, 0은 이동할 수 없는 칸을 나타낸다. 이러한 미로가 주어졌을 때, (1, 1)에서 출발하여 (N, M)의 위치로 이동할 때 지나야 하는 최소의 칸 수를 구하는 프... 그래프 이론Silver 1그래프 탐색BFS백준너비 우선 탐색algorithmpythonBFS [Python] 백준 1068_ 트리 이 문제는 깊이 우선 탐색(dfs)을 이용하여 해결하였다. (예제) 1. 트리 그래프 만들기 먼저 루트 노드는 root변수에 따로 저장해두고, node리스트의 인덱스 값의 자식 노드 번호를 저장해두었다. root = 0 이다. 0의 자식노드는 1,2 1의 자식노드는 존재하지 않으므로 리프노드라고 할 수 있다. 2. 리프 노드의 개수 구하기 리프노드의 개수를 cnt변수에 저장한다. 3. 제거해... 그래프 이론DFS코테공부백준트리알고리즘그래프 탐색DFS